'use strict';
/**
 * author：小小游 --- allen
 * date：2018.02.05
 * lastUpdateDate：2018.02.05
 * description：Generator函数与yield语句的使用
 */
/**
 * 这是一个generator函数，内部它实现了Iterator接口
 */
function * fn () {
    console.log('hello fn!');
}

// 如果像普通函数一样调用它是不会输出任何结果的
// fn ();

/**
 * 那么当我们执行一个generator函数的时候，它内部会给我们
 * 返回一个Iterator的指针对象，通过调用next()方法，它就
 * 会执行方法体，那么调用next()方法它会返回一个结果，这个
 * 结果有两个值，如下：
 * { value: undefined, done: true }
 * 也就是说一个是当前循环的value值，另一个是当前循环是否
 * 结束的done，如果{ value: undefined, done: true }
 * 那么表示循环已经结束，任务已finished!
 */
let iterator = fn ();
let result = iterator.next();
console.log(result);
